<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * Realiza a interacao entre a aplicacao e a tabela de categorias no banco de dados
 * 
 * @package application/models/adm
 * @name Grupo_model
 * @author Joao Claudio Dias Araujo <joao.araujo@tellks.com.br>
 */
class Categoria_model extends CI_Model{
    
    private $tabela;
    
    function __construct() {
        parent::__construct();
        
        $this->tabela = 'categoria';
    }
            
    /**
     * Busca todos os categorias do banco de dados
     * 
     * @return array
     */
    function get_all(){
        
        $categorias = $this->db->get($this->tabela);
        
        if($categorias->num_rows() > 0){
            
            return $categorias->result();
        }
        else {
            
            return array();
        }
    }
    
    /**
     * Busca os dados de um categoria pelo seu ID
     * 
     * @param int $id ID do categoria
     * @return mixed
     */
    function get_by_id($id){
        
        $this->db->select('*');
        
        $this->db->from($this->tabela);
        
        $this->db->where('id', (int)$id);
        
        $categoria = $this->db->get();
        
        if($categoria->num_rows() > 0){
            
            return $categoria->row(0);
        }
        else{
            
            return false;
        }
    }
            
    /**
     * Insere um categoria no banco de dados
     * 
     * @param sdtClass Object $categoria Objeto contendo os dados do categoria
     * @return boolean
     */
    function inserir($categoria){
        
        $this->db->insert($this->tabela,$categoria);
        
        return (bool)$this->db->affected_rows();
    }
    
    /**
     * atualiza um categoria no banco de dados
     * 
     * @param sdtClass Object $categoria Objeto contendo os dados do categoria
     * @return boolean
     */
    function atualizar($categoria){
        
        $this->db->where('id', (int)$categoria->id);
        
        $this->db->update($this->tabela,$categoria);
        
        return (bool)$this->db->affected_rows();
    }
    
    /**
     * Remove um categoria do banco de dados
     * 
     * @param int $id ID do categoria a ser removido
     * @return boolean
     */
    function remover($id){
        
        $this->db->where('id', (int)$id);
        
        $this->db->delete($this->tabela);
        
        return (bool)$this->db->affected_rows();
    }
    function get_categoria_produto($id_categoria) {
        $cat = array('categoria' => $id_categoria);
        $this->db->select('*')->from($this->tabela)->where($cat);
        $categorias = $this->db->get();

        if ($categorias->num_rows() > 0) {

            // Itera sob as cidades construindo um array onde o ID da cidade
            // e a chave e o NOME e o valor
            foreach ($categorias->result() as $categoria) {

                $result[$categoria->id] = $categorias->nome;
            }
        }
        
        // Retorna o array com as cidades da UF 
        return $result;
    }
    public function get_categorias() {
        
        $this->db->select('nome_categoria, id')->from($this->tabela);
        
        $cat= $this->db->get();
        
        $result = array();
        
        if($cat->num_rows() > 0) {
            
            
            foreach ($cat->result() as $c) {
                
                $result[$c->id] = $c->nome_categoria;
               
            }
 
        }
        
        return $result;
    }
   
}